═══ 1. FF2 Primary Display ═══ Note: Whenever you see a marked text, you can get more information about that topic by clicking on that text. Author Click on about to get the author of FF2 V7.4. FF2 V7.4b Overview FF2 V7.4b is a text search/replacing and batch file generationg utility. It allows text search and replacement using wildcards such as '*' in file patterns and search text. You may search/replace up to 5 text strings, each logically combined by an "or" or "and". With the found files you can generate powerful .cmd files wich may be run directly from FF2 V7.4. Each file shown in the search results list box will be loaded in your editor or executed, depending on the file type. If you prefer the "container" representation instead of a list box, FF2 V7.4 does it. Furthermore FF2 V7.4b allows you deletion of directories, examining used space on directories and displaying the system memory and swapper space usage. From a technical point of view, FF2 V7.4b uses heavy multithreading technology, which prepares you for the age of scalar multiprocessor machines. FF2 V7.4b is a true blue 32-bit application. For a "quick tour" about FF2 V7.4b click on FF2 V7.4b Text Search related topics. Search patterns 2-5 Search Strings 2-5 File attributes facility Date, Size, File Name (DOS 8.3 or HPFS long) options Define regular expression special characters The command (.cmd) - file generator Batch file generation Write search results to a file Printing the search results Print listbox The integrated FF2 V7.4b tools... Directory deleter Directory size facility Available memory displayer Getting text to search from the clipboard Printing Search for duplicate files Configuration Output Font Editor selection Facility Default generated batch file Working Option Selection Displaying search results in a container Container display Starting programs Single command executor Program starter arguments Installation, disclaimer, about FF2 V7.4b and registration Installation guidelines Register About ═══ 2. FF2 V7.4b Primary panel ═══ Controls placed on the FF2 V7.4b primary panel The controls you need most often are placed on the first display shown by FF2 V7.4. Output display Search results are displayed in a listbox, refrenced as the output display. You can change the fonts used in the listbox with the "output font" dialog in the configuration menu. Selecting drive(s) to search The drives listbox let you specify one or more drives to search on. Use the "All" checkbox to toggle all fixed drives on/of. Searchpath This combobox specifies the path to be searched. You can enter the path directly or invoke the path dialog by clicking on the path pushbutton. Note that a selected path will be applyed to all selected drives. If you search more then one drive, leave this field empty. Your last 10 path selections are stored in the FF2.INI file and available through different sessions. Drop down the list and select one of the displayed pathes. The last entered path will appear on top of the list box, the oldest one at the end. To get rid of the stored pathes, delete the FF2.INI file. Searchpatterns Depending on what kind of search you're performing enter: ┌─────────────────┬─────────────┐ │type of search │ enter a │ ├─────────────────┼─────────────┤ │text │ filename │ │ │ or filename │ │ │ pattern │ ├─────────────────┼─────────────┤ │directory │ dirname │ │ │ or directory│ │ │ pattern │ └─────────────────┴─────────────┘ Any valid search pattern may be entered. For one search you may specify more then one pattern. Click on the pushbutton to the right of the entryfield. This brings up the Search patterns 2-5 dialog where you can specify more patterns. Search for files/dirs not matching a pattern Checking the "Exclude" check box searches for files (or directories) that don't match a given pattern. As an example, searching for *.sav in d:·\tmp will find all files except the ones matching *.c, if the exclude option is on. If you have entered patterns in the file patterns 2-5 Search strings For text searches, you must enter a text to be searched in the "search" entryfield. If you want to enter more than one text to be searched for, click on the pushbutton to the right. This brings up the search strings 2-5 Pasting text to be searched from the clipboard You can get text to be searched for from the clipboard . Select "Edit Searchpattern" from the "Clipboard" menu to bring up the clipboard. Case sensitive Check the case sensitive checkbox to toggle between case sensitive and case insensitve searches. All occurences If all is checked, all found strings will be displayed (and replaced, if text replacement is acitve). If it's unchecked, only the first occurence will be displayed (and replaced). Word match If you want a word match, set the word check box on. Regular expressions (grep like) If you want to use metacharacters in text searches, activate the "Regular expressions" check box. Metacharacters are explained in Define regular expression special characters dialog. You can define your own set of "regular expressions" in the Define regular expression special characters dialog. Hex match This works the same as a normal test search but you specify the search and replacement strings as hexadecimal strings. When you check the "hex" checkbox, the specified values are converted into a hexadecimal string. Unchecking the "hex" checkbox does the reverse thing. Note that hex searches are always case sensitive. Directory searches If you like to search for a directory, e.g. "system", chech the "Dirs only" checkbox. Note that no text searches are possible in this mode. Non recursive searches By default, FF2 V7.4 searches recursively into sub-directories. If you want to search only the directory you selected activate the "No Subdir" checkbox. Searching the environment (including LIBPATH) FF2 V7.4 allows you to perform searches in any path defined in the environment. Click on the "Environment" combo box to get the environment pathes defined in your config.sys. If you want to search an environment path you entered in the same session before starting FF2 V7.4 you can enter it in the entryfield of the combobox. You'll find this feature useful when you're chasing your DLL's... Search for file attributes The File attributes dialog specifyies file attributes you want to search for. Search for file dates, sizes and naming conventions With the Date, Size, 8.3 naming convention dialog you search for : files younger files older files between a given date. files greater files smaller files equal a given size. Search for files matching the DOS 8.3 naming convention Suppose you exchange data with a friend having a DOS machine or you move from HPFS to FAT (sic!) this option becomes useful giving you all files with names matching the 12345678.123 DOS naming convention. "Match" means the files has a name smaller/equal to 8 charcters and an extension of at most 3 characters. Starting a search With a click on the search pushbutton you start the search. The button is only selectable when a drive in the drive listbox is selected. During a search this button is disabled. Stopping a search If you want to stop a search, press the cancel push button. If you've entered a high number of threads allowed in the Working Option Selection it may take some time utill the search is stopped. About double clicking in the output listbox A double click in the output listbox either:  Starts the program, if the filename extension is *.exe, *.cmd, *.bat  Loads the file into an editor in all other cases Editing a file To edit a file:  Press the "Edit" push button  Double click on the file You select your editor in the default editor dialog . There you learn more about passing the search string or the line number of the first occurence of a found string to the editor. Selecting and editing behaviour If you selected the display of context lines, FF2 V7.4 gives your editor the line number or search text that is at your selection or above. This enables you to look at different occurences of a found text as will occure on searches with regular expressions. After the selection, FF2 V7.4 positions the cursor at the name of the found file to which the found strings belongs. Executing a file To execute a file:  Press the "Execute" push button  Double click on the file FF2 V7.4 "knows" the program type. For non-graphic programs it brings up the Program starter arguments dialog where you can pass arguments and execution environments to the starting program. If the file is of the  *.cmd  *.bat type. Selected a cmd-file asks you whether to edit or to execute it. If you decide "execute" you are aked for arguments for batch-command (.CMD) files . There are situation where FF2 V7.4 can't get the program type. In this (rare) conditions, enter the program type in the can't make out program type dialog. Deleting files If you select a file and press delete, you will be prompted before FF2 V7.4 removes the file. Shell push button If you want to execute a shell command on a found file or directory, click on the shell push button. This invokes the Single command executor . Reverse push button The reverse push button reverses the contents of the output listbox: Before "reversing" drive: drive:\path1\... drive:\path1\path2\... After "reversing" drive:\path1\path2\... drive:\path1\... drive: This feature may become useful when you're generating delete commands, where the files nested deepest into the hierarchy must be deleted first but are displayed last in the output listbox. Printing a file Click on "Print". The Printer setup dialog appears. Here you can choose from which printer queue you want to print, which font to use and even invoce your printer driver's settings dialog. FF2 V7.4 produces a real nice listing, every page with a header containing the file name, print time and page number. Search progres monitor FF2 V7.4 monitors its search state in the top left side: Control Text Description Files Total number of files searched Found Number of files actually satisfying the search criteria specified Matched Files whose pattern matched and for which text search is started Done Files for which text search has finished "Files" and "Found" is displayed in text searches and in pattern searches. "Matched" and "Done" are displayed only in text searches. The difference between the two shows you the number of search threads concurrently running. If you are searching for duplicate files, "Done" tells you how may files have been compared and "Same" tells you how many duplicate files have been found so far. Current search location FF2 V7.4 shows you it's search location in the "Curently searching at..." display. For text searches every thread displays the file it was searching before it ends. This means, this file is already searched when it is displayed. If you are searching for duplicate files, the files that are actually compared are shown in that place. Look at the Search duplicate files dialog for more information. ═══ 3. Files menu ═══ Choose the def. Batchfile submenu to select your default .CMD file for generated batch commands. ═══ 4. Exit help ═══ You can exit FF2 4.1 whenever you want. ═══ 5. Configuration menu ═══ This menu gives you acces to FF2 V7.4 configuration menues. ═══ 6. Editor submenu ═══ Click editor to start the editor-dialog. ═══ 7. Tools menu ═══ Click dirsize submenu to start the directory size search facility. Clikc deldir submenu to start the directory deletion facility. ═══ 8. Directory size submenu ═══ Click on the dirsize submenu item to get the size a directory or a listing off all empty sub-directories within a specified directory. ═══ 9. Batch menu ═══ Click generate to start generation of batch (.cmd) files. ═══ 10. Genarate submenu ═══ Press generate to start the batch-file generation facility. ═══ 11. Clipboard menu ═══ Select the edit searchpattern submenu! ═══ 12. Clipboard submenu ═══ Start the edit searchpattern Dialog wich will be availiable to you as long as you're running FF2 V7.2. giving you the possibility to view the contents of the Clipboard and using them as search strings. ═══ 13. Print Search Results Facility ═══ If you select print you invoke the Printer setup dialog. You can do changes or click on "Ok" to start printing. ═══ 14. Default Batch File submenu ═══ Select this item to specify the default FF2 V7.4 generated batch file. ═══ 15. Directory removing submenu ═══ Select this item to delete all files and remove all directories contained in a path given by you. ═══ 16. File Attributes submenu ═══ Select the file attributes submenu! ═══ 17. Date Size and FAT/HPFS submenu ═══ Select this menu to specify search date, size and check for FAT or HPFS file names. ═══ 18. File patterns 2-5 submenu ═══ Select this menu to specify more file search patterns. ═══ 19. Text Strings 2-5 ═══ Select this menu to specify additional text strings to search for. ═══ 20. Extended search options ═══ ═══ 21. Regular expressions ═══ Select this menu to enter the character you want to use as "regular expressions" in text searches. ═══ 22. Print listbox ═══ Print the search results. ═══ 23. Output Font ═══ Specify the font of the output listbox using the standard fonts dialog. For use with the output listbox monocpaced fonts are recommended. (It looks nicer). ═══ 24. Output Font ═══ Select working options. ═══ 25. Memory ═══ Show memory usage. ═══ 26. Cont ═══ Display search results in a container window. ═══ 27. Open container ═══ Opens the container display. ═══ 28. Views ═══ Select one of the items in the popup context menu. ═══ 29. Icon View ═══ Activate icon view mode for container control. ═══ 30. Name View ═══ Activate name view mode for container control. ═══ 31. Text View ═══ Activate text view mode for container control. ═══ 32. Detail View ═══ Activate detail view mode for container control. ═══ 33. Detail View ═══ Register yourself to get support for FF2 V7.4! ═══ 34. Memory View Options ═══ Enter the Path to your swapper.dat. ═══ 35. Duplicate file search options ═══ Select this menu to enter the duplicate files dialog. ═══ 36. Write search results to file ═══ Select this menu to write the search results to a file. ═══ 37. About ═══ FF2 V7.4 by Markus Pfister. You can reach the author on CompuServe. Send E-mails to 100550,1100. Thank you for feedback! Please read the disclaimer. ═══ 38. Extended search options facility ═══ Operators size and date This dialog offers you the possibility to search files 1. with a date  equal  greater  smaller  from ... to the date you spezified. 2. with a size  equal  greater  smaller the filesize you spezified. Check filename is not a DOS 8.3 name This option helps you to check whether all files are in the FAT naming convention (xxxxxxxx.xxx) or in the HPFS naming convention allowing long file names. this option is useful when you change from FAT to HPFS and want to get rid of the long filenames. Search size, search date Check these checkboxes to activate a search for sizes or dates matching your search criterias. Combining the searches Of course you're allowed to combine all possible search criterias as you please. ═══ 39. Editor selection Facility ═══ Editor panel Specify "your" editor. The editor will be invoked if you click on the "edit" push button or double click a file. Editor field Enter the name of the editor into the "editor" field. Working directory If you have the editor on your PATH, you can leave this field blank. Otherwise fill it with the path to your editor. FF2 V7.4 makes a change directory to this path if it's not blank. Editor push button If you like the easy way, click on the editor push button an select your editor through the file dialog. The editor and working directory fields will be filled in automatically. Editor invokation string You can specify an invokation string, wich will be passed to the ed. The values %SEARCHSTRING% and %LINE% will be replaced by the first string found in the file and it's linenumber. If the searchstring contains any double quotes (") FF2 V7.4 escapes them with a backslash, because editors would recognize the double quote as start/end of the searchstring and not as part of the search text. Note that if you use EPM.EXE (the default) '%LINE%' will appear into the invokation string, even if you blank it out. This to ensure you use this parameter, since it positions EPM on the first occurence of the found string. If you don't want this, enter one or more blanks. Settings for EPM (default editor) For OS/2's EPM editor '%LINE%' positions the edited file at the first line containing the searched string. 'locate ї%SEARCHSTRING%ї + A E C' will place the cursor exactly at the first occurence of the text, causing EPM to do a string search. EPM takes the first character that frames the searchstring as the start/end delimiter (here it's ї). If this character appears in the string, the search is undefined since EPM doesn't allow to escape a delimiter. You may change the ї to another delimiter. So '%LINE%' is a better option for EPM, because a line number doesn't need delimiting. Other editors If you use another editor you can create your own command, just fill it in and write %LINE% where you want the line numer and %SEARCHSTRING% where you want the searchstring. ═══ 40. Batch file generation Facility ═══ Transformation templates Transformation templates allow the alteration of the path displayed in the output list box. The batch generator adds the COMMAND BEFORE, the found path (from the output listbox), the TRANSFORMED path and the COMMAND AFTER to a single command. This gives the scheme CMD BEFORE found path/file TRANSFORMED path/file CMD AFTER e.g copy c:\test\my.txt c:\test\myaddedpath\my.txt In the above example, "COMMAND" was abbreviated by "CMD". Command before The COMMAND BEFORE should be a valid shell command, e.g. copy, delete. Command after The COMMAND AFTER is a text, eg. lpt1: Direct transformation You can generate commands using one or two paths. The difference is as follows: copy ORIGINAL PATH TRANSFORMED PATH eg. c:\test\my.txt c:\test\myaddedpath\my.txt uses two pathes. del TRANSFORMED PATH eg. del c:\test\my.txt uses one path. By default, FF2 V7.4 assumes you want to generate a command using two pathes. For a one path command, switch the "Direct transformation" radio button on. This inserts only the generated path into the generated shell command. (Don't forget that a blank TRANSFORMATION rule field results in the same path as the original one, which is ok for deleting or printing files: COMMAND BEFORE copy COMMAND AFTER lpt1: "copy found files lpt1:" Generate a batch file Click on the "generate" push button to generate the batch file with your transformation rules. Rexx commands You invoke the Rexx command processor with a comment line of the form /* .... */. By default FF2 V7.4 generates "REM" comments, thus invoking the normal OS/2 command processor. When you check the "Rexx" checkbox, FF2 V7.4 generates the Rexx style comments. These invoke the Rexx command processor when you start the generated batch file. Comment files in path This feature helps you in cleaning up your files. If you generate e.g. delete commands, these commands will be commented in the generated file, thus preventing the shell from executing them and deleting probably needed files. This check box is only enabled when you have done a search for duplicate files with the Search for duplicate files dialog, and you checked the "Mark files in below pathes in output listbox". Note that everything you specified (transformation patterns and commands) are generated but commented. Comment first file If you want to clean up your duplicate files, you may wish to keep at least one file of a set of duplicate files. That's exectly what "Comment first file" does. Deleting duplicate files savely If you want to delete duplicate files, you should use both options, "Comment files in path" and "Comment first file". This preserves you one file and preserves all files located in a path. Generating lists When you leave the COMMAND BEFORE entry field empty, FF2 V7.4 generates a "list". A list consists of all the found files or directories. If you leave the COMMAND BEFORE field empty FF2 V7.4 prompts you that you are generating a list and gives you a choice to abort. Lists are useful in a Rexx procedure. Generated ·cmd file If the file already exists, FF2 V7.4 asks you, whether to overwrite it or not. FF2 V7.4 suggests you the default batchfile you specified in the default generated batch file dialog. If you want FF2 V7.4 to generate into another file, enter the path in the "path and filename without .cmd suffix" entryfield. Edit View and edit (if necessary) the generated .cmd file by clicking on the "edit" push button. Run a generated .cmd file Click on " run". FF2 V7.4 opens a shell and executes the .cmd file. CAUTION: Before you run the commands, view the generated file! ═══ 41. Directory size facility ═══ This tool gives you the actual used amount of bytes, e.g. allocated bytes in a directory. Only empty directories This is a "garbage collector" giving you empty directories which are possible candidate for deleting. FF2 V7.4 considers a directory as empty when it contains no files and subdirectories or only files of size 0. Warning: Desktop folders are structures of empty directories. Don't delete these! Path Enter the directory you want to examine in the entryfield or click on the "Dir" pushbutton wich brings up the file dialog. Starting the dirsize run Click on the "run" push button. Stopping a delete run Click on stop to stop the dirsize run. Clear This clears the path entryfield. Quit Closes the dirsize dialog. If a dirsize run is active, it will continue. To stop it, press the "stop" push button. ═══ 42. Search patterns 2-5 ═══ File search patterns Enter a File search pattern. Use Click on the "use" check box to activate the patterns you entered. If no search pattern is entered the use check box is disabled. ═══ 43. Clipboard facility ═══ This tool allows you to get text to search from the clipboard. You clip text into the clipboard whenever you do a "cut and paste" operation. A good example is pasting in the EPM editor. Selecting text  Mark text in the multi line entryfield  Click on "Use" or "Use and Quit" If you don't mark text, the first 1000 bytes in the multi line entry field will be used. You can not mark more then 1000 characters. Use "Use" puts the text contained in the clipboard in the "search" field, leaving the clipboard dialog open. Use and Quit This puts the text conatined in the clipboard in the "search" field too, but closes the clipboard dialog. Update Display when Clipboard changes If this check box is on, the text changes whenever you clip text in another application to the clipboard. This may be boring so you can switch the change of. Font Clicking on the pushbutton brings up the fonts dialog. allowing you to change the font of the multi line entryfield. ═══ 44. Program starter arguments ═══ Passing arguments to a program If you double click an executable file in the output list box or press the "exec" push button, FF2 V7.4 determines the program type and starts the program. For shell programs you can pass arguments and environment settings to the programm to be started. Arguments If the program you start is the "dir" command, you could pass these arguments: c:\os2 /p Environment for a started program If you don't specify an environment, FF2 V7.4 gets it from the shell. But you're free to specify your own environemnt statements. You can check it out: Search the "env" program and double click it. Press the "ok" button. A shell opens and displays the environment. You can alter theenvironment settings by either overwriting an existing enviroment or adding to an existing environment. Of course you can add a new environment setting too. Overwriting an environment setting Supposed, your old environment for TMP was c:\tmp then c:\tmp\newtmp overwrites the old setting. Adding to an existing environment setting Supposed, your old environment for TMP was c:\tmp then %TMP%=c:\tmp\newtmp would add c:\tmp\newtmp to :\tmp which gives c:\tmp\newtm;:\tmp. Creating a new environment setting You crate a new environtemnt setting by adding the new setting. NEWTMP=c:\tmp would add this setting to the environemnt. Working directory If you specify a working directory FF2 V7.4 changes to that directory before starting the program. Ok button This starts the program. The started program appears in the tasklist. The tasklist entry for this program contains the invokation parameters if you have specified any. ═══ 45. Selected a cmd-file ═══ This dialog asks you whether you want to edit or to exec the selected cmd-file. If you don't want neither of them, press cancel to abort. ═══ 46. File attributes facility ═══ Read only, hidden, system, archive FF2 V7.4 searches for the following file attributes:  read only file  hidden file  system file  archive file The controls you use in this dialog take 3 states:  blank file hasn't this attribute  crossed file has this attribute  greyed it doesn't matter You have the choice to search for files with the selected attributes, for files without the selected attributes or you can say you don't matter whether a file has a certain attribute. Examples If you like to find all archived files, set read only, hidden and system to greyed (doesn't matter) and check (crossed) archived files. If you want to select all non-system files, set read only, hidden and archive to greyed and system to blank. Use selected attributs If you check the "use selected attributes" checkboxes, your defined values will be active in the next search. In combination with the batch file generator/executer FF2 V7.4 enables you to change file-attributes system-wide with a few keystorkes. ═══ 47. Single command executor ═══ Enter a valid OS/2 or DOS command Type the command you want to execute against the found file or directory. Enter an optional to command Type a command tail. ┌───────────┬───────────────────┐ │ command │ tail │ ├───────────┼───────────────────┤ │ type │ lpt: │ │ dir │ /p │ │ xcopy │ c:/os2 /s │ └───────────┴───────────────────┘ Excute Excute opens a shell and runs your comand. ═══ 48. Default batch file ═══ Enter the default .CMD file which FF2 V7.4 uses in the batch generation dialog. Fill in the filename (without the .CMD extension) and the correct path to the file. Default If you don't specify anything, FF2 V7.4 will use C:\FF2GEN.CMD as the default batch file. ═══ 49. Arguments for .CMD batch file ═══ Type in the arguments you want to pass to the .cmd or .bat file being executed. ═══ 50. Can't make out Applicationtype ═══ What happend? FF2 V7.4 tried to start your progam but didn't suceed. If you know what kind of program you want to start, select the type and press ok. If you don't succeed start the program from a OS/2 shell. I think the more programs are beeing compiled with new versions of c and c++ compilers (and others) the fewer you'll see this dialog. ═══ 51. Directory deletor ═══ Delete all files and directories contained in a given path. FF2 V7.4 tries to set the file attributes to normal before deleting the files, in other words it's a tough delete. Type the directory you want to delete into the entryfield or click on the "Dir" pushbutton. This brings up the file dialog. Starting a directory deletion Click on the "Run" push button. Stopping a delete run Click on stop to stop a deleting run. Clear This clears the path entryfield. Quit Closes the directory deletor dialog. If a deletion run is active, it will continue. To stop it, press the "stop" push button. ═══ 52. Search strings 2-5 ═══ This dialog offers you more text strings to search for. You have the same choices referring to text strings as described in Primary display. All Word Regular expressions (enable GREP) Case sensitive Hexadecimal strings Not checkbox Use selected values The strings and logical expressions you entered become active if you check the "Use selected values" check box. If nothing is entered, the check box is disabled. ═══ 53. Define regular expression special characters ═══ FF2 V7.4 suggests you default memonics for "regular expression characters". You can change them whenever you like. The characters you entered will be displyed in search textstrings 2-5 dialog where you use them. You cannot use the same character two times. ═══ 54. Standard OS/2 font Dialog ═══ Select one of the offered fonts. Display fonts When you invoked this dialog from the Output font configuration dialog you may choose a display font, since you specify a font for the output listbox. Printer fonts When you invoked this dialog from the Printer setup dialog, you may select either a display or a printer font. Ok pushbutton This activates the selected font and writes it to the OS2.INI file. So you will get your font for the output listbox and printing whenever you use FF2 V7.4. Cancel The old font will still be active. ═══ 55. Standard OS/2 File Dialog - File select ═══ This dialog lets you select a file. Choose a directory and a file and click on file. The selected file will be used for the action you want to perform. press cancel to undo your selection. ═══ 56. Standard OS/2 File Dialog - Directory select ═══ Use this dialog to select a directory. This dialog works like the standard file dialog but allows only the selection of directories. ═══ 57. Working Option Selection ═══ Set the options active during searches and manage resources used by FF2 V7.4 Threads Field FF2 V7.4 makes heavy usage of OS/2 multitasking capabilities. Indeed, FF2 V7.4 is one of the few tools making uncompromising use of threading. Please have a look at the THREADS parameter in the config.sys, since you can't start more threads then defined with this parameter. FF2 V7.4 will work with any number of threads, but since threads eat ressources you should stick to something between 50 and 150. If you have a lot of memory (e.g. more than 16 MB) you may increase this parameter. Keep system responsive FF2 V7.4 executes the search threads with the lowest possible priority. If you think your system isn't responsive enough during a search, decrease the threads parameter. However, you do this at the cost of search efficiency. Threads let the system do disc I/O while doing other computations, e.g. searching text. More threads keep the hard disk busy while there is still something to do for the threads not waiting for data from the disk. Maximum threads FF2 V7.4 never schedules more threads than stated in the maximum threads field. This is true for memory and threads scheduling. Schedule by available memory By default, FF2 V7.4 schedules its threads according to the available memory. Schedule by available memory (default) When you search a CD-Rom you will see that it may contain files up to 25 MB. You can imagine that 10 Threads running at one time searching files of more then e.g. 1 MB will keep OS/2 busy swapping and more dangerous, running out of swapper space. To avoid this, FF2 V7.4 queries the physical memory installed (e. g. 16 MB) and calculates, how many threads can be run concurrently. Here is how it works: ┌───────────┬──────────┬────────┐ │Bytes of │File │Threads │ │Memory │size │ │ ├───────────┼──────────┼────────┤ │ 1,000,000 │ 100,000 │10 │ │ 1,000,000 │ 300,000 │ 3 │ │16,000,000 │5000,000 │ 3 │ └───────────┴──────────┴────────┘ Start automatic scheduling from field This helps efficiently running your system. Just keep in mind that even if you specify 100 threads running this number will decrease because new threads wait until the large files are done searching. The FF2 V7.4 default value is 0, meaning that the scheduler is active all the time. If you like, you can increase this number, e.g. up to 100,000 bytes. This means that FF2 V7.4 schedules files under 100,000 bytes up to the limit in the thread fields and schedules files larger 100,000 bytes according to the available memory. If you change this setting, don't enter too large values. In most cases the default setting of zero is ok. A good reason to encrease it would be a search with a lot of small files and one of several megabytes. Schedule by allowed threads. If you switch "schedule by allowed threads" on, you set a limit of allowed threads, not taking care of the memory situation. While working on small files, this is ok but it can become dangerous if you work on large files of one megabyte or more. (When it becomes dangerous depends on how much memory you have installed and how many other processes you are running). Warn on not accessible Files In text searches some files may not be accessible. By default, FF2 V7.4 warns you on those files. This may be annoying. Uncheck warn on not accessible files to turn of promting. Ask before replacing Text If you want to be asked before FF2 V7.4 replaces a found text string, activate the warn before text replacement option. By default, FF2 V7.4 warns you before changing text. Note that it might happen that a replace prompt window is hidden behind FF2 V7.4. In this case, FF2 V7.4 seems to hang, because it's waiting for your input. Simply search the window and press ok or cancel. Display context lines FF2 V7.4 displays the line that contains a found text if you activate this option. Found lines are marked with a "=>" and replaced lines are marked with "<=". This gives you a quick decision help, which files might be worth a closer look. If you don't want the context lines, switch this option off. Truncated (long) output lines Note that very large lines how they occur in binary files will be truncated. This happens in a way that the found string can be displayed. These lines start with the flag "Truncated!". Number of context lines You can change the range of context lines displayed before and after the found string. Note that this spinbutton is only enabled when you set the "display context line" option active. The found line is marked by '=>', the replaced line by '<='. Both lines are highlited in different colors. The context lines are flagged with a '+'. Verbose search results Search results come in two flavours. The default is a short listing containing only information about drives files found on. You can change the default to a "verbose" listing containing information about all search options active during the search and information about all searched drives, including thouse no files have been found on. To do this, check the "verbose search results" check box. ═══ 58. Memory ═══ Get informations about current memory usage. The displayed values have the following meanings:  Page Size The Size of a Page (the primary memory management unit) on your system.  OS/2 Version The Revision letter.  Physical available Total number of bytes of physical memory in the system.  Resident Total number of bytes of resident memory in the system.  Available to all processes (red) Maximum number of bytes that can be allocated by all processes in the system. This number is advisory and is not guaranteed, since system conditions change constantly.  Private available Maximum number of bytes of memory that this process can allocate in its private arena. This number is advisory and is not guaranteed, since system conditions change constantly.  Shared available Maximum number of bytes of memory that a process can allocate in the shared arena. This number is advisory and is not guaranteed, since system conditions change constantly.  SWAPPER.DAT size Every 20 seconds FF2 V7.4 queries the size of actual allocated memory blocks in the SWAPPER.DAT file. Update interval in millicseconds You can change the timer interval. Activate the new value by clicking on the "set" push button. Note that the timer setting doesn't affect the interval for querying the SWAPPER.DAT size. ═══ 59. Container ═══ Displaying the search results You can open the container dialog whenever you want. You can minimize the FF2 V7.4 main panel and interact with the objects in the container just as you would from the listbox. Note that you can't close the conatiner during an acitve search. Display modes A click on the left mouse button brings up a pop up menu which offers you three different views: View mode Description Icon Shows the icons of the found files Name Shows the icons and names of the found files Text Shows the name of the found files only Details Shows the details (name, data of last write and size) of the found files ═══ 60. Register ═══ Register CompuServe Shareware Registration If you are a CompuServe member, GOSWREG and select ID 10138. This registers you for FF2 V7.4. Sending me the money I'm not greedy, no. But writing an application like this takes you a lot of time. Click on email to get my email adress. Send me a mail and you get my postal adress, so you can send me the money. Transfer the license fee to my bank account Zuercher Kantonalbank 8952 Schlieren (Switzerland) Account 1148-998.792, Markus Pfister Anyway, THANK you for sending the money! Your contribution make sure that there will be future releases of FF2 V7.4. Disclaimer FF2 V7.4 is a product of HankoSoft. HankoSoft will not take responsability / liability for any damage to your hard- and software nor to loss or destruction of data caused by FF2 V7.4. By using FF2 V7.4 you agree with this disclaimer. ═══ 61. not used now ═══ ═══ 62. Printer setup ═══ Using default values Click on the "Ok" pushbutton to start printing. If you have choosen a font in a previous session this font will be used. If not, FF2 V7.4 uses 8 point Courier. If you don't select another printing queue, FF2 V7.4 prints to your default Presentation Manager queue. Selecting a printer queue Use the list box to choose a printer queue. You must double click on a printer queue name to select a printer queue. Once the printer queue is active, FF2 V7.4 spools the desired file or search results to this queue. The selection is only active during the current printing session. Whenever you bring up the printer setup dialog, the queue you made the OS/2 deault queue will be marked and preselected. Selecting a font Click on the "Font" pushbutton. This brings up the standard fonts dialog. If you select a font in this dialog, this font will be used as long until you specify another one. (FF2 V7.4 writes the font to the OS2.INI file). Choose your own document header If you don't like the FF2 V7.4 default header, you can define one of your choice. The text you enter in the "header" entryfield will appear on top of every page of the printed document, followed by the page number. Define left margin You define the left margin in sizes of a blank in the used font and fontsize. If you spin the button until "4" shows up, you define a left margin having the size of four blank characters. This is handy when you want to add handwritten notes to the printed documents. Expand tabs to blanks A tabulator can be replaced by a number of blanks. Select through how many blanks you want to expand a tab sign. Normally 3 is a good value. Printer setup If you wish, you can change the settings offered by your display drivers setup. Note that changes in the printer driver setup dialog affect only your current printing session. Do the printing Press the "Ok" push button to start printing. If you first want a preview, open the printer icon and select "Change status". Here you set the status to "hold". As soon as the spooling has stopped, you can double click the icon with the name of the printed file or search results output. This invokes the file view tool. No printing If you change your mind, click on the "Cancel" push button. This brings you back to the FF2 main panel. ═══ 63. Search duplicate files ═══ Search for duplicate files When I wrote this feature and used it the first time on my sytem I was really surprised. I knew, I had some duplicate files. But I didn't expect that many. With FF2 V7.4 you can do a four step approach to clean up your hard disk.  File Names must be equal  File sizes must be equal  File contents must be equal  Mark files located in a search path Equal file names To search for equal file names, just check the "Use the specified values" check box, which will change color from red to green. When you start now a search, FF2 V7.4 searches for files with the same name. Note that you can't enter a search criteria while you have the "Use the specified values" check box checked. Uncheck it to do text searches and text replacement. Equal file names and sizes Once you have found equal files, you might distinguish between file sizes, since there could be different versions of files. To accomplish this, check the "Files must be of same size" option. Equal file contents (compare) This is the last step. To be sure whether you can throw away a file, it must be compared. FF2 V7.4 does this for you. When the "Compare files" option is set, FF2 V7.4 compares all found files with the same name and file size against each other and lists them. Now you can be sure to have found duplicate files. Note that checking "Compare files" activates the "Files must be of same size" option too. Different versions There may be duplicate versions of files having the same name and file size but different contents. These files are listed with a separate version number, which is displayed in brackets []. Note that a file has to be present at least 4 with the same file size in two different versions (every version is represented by two files) to be listed as different version. Mark files located in below pathes in output results listbox Now you're up to make a decision. Throwing away the duplicate files or not? I had that kind of trouble myself. One important clue whether you can throw away a file or not is whether it's located in a search or lib path. If it is in such a path, you are cautious about throwing it away. FF2 V7.4 supports your decision making. If you activate the "Mark files located in below pathes in output results listbox" check box you can select path entries from the listbox. Every duplicate file located in a search or libpath will appear with a red hint, every file not located in a search or libpath with a green hint. This feature comes handy when you want to delete duplicate files. Mark all This check box is a shortcut for selecting all searchpathes in the list box. This check box is only enabled when you activate the "Mark files located in below pathes in output results listbox". If you uncheck the box, all pathes are deselected. Reset duplicate file search Again, click on the "Use specified values" check box. It turns red, indicating that the settings won't be used. This means, FF2 V7.4 is in the normal mode, which allows text searches and text replacement. You achieve the same results, if you click on the "Clear" push button. This resets all check boxes to unset. Showing workstate Searching for duplicate files can be a lengthy task when you're searching for thousands of files. FF2 V7.4 tells you which files it's comparing. The first file showing up in the FF2 V7.4 primary display is the file that is compared against all other files with the same name. The "other" file is the second file name displayed. The logic of FF2 V7.4 is to compare every file found against the others except the other file is already equal to another. I think the display of the files actually being compared is useful to give you an impression of the work your computer is doing to compare all the equal files. Note that it won't be a good idea to search only on one hard drive since the duplicate file are normally spread all over your system. Generating batch commands In the Batch file generation dialog you find two checkboxes which relate to the settings you choose in this dialog. If you selected "Mark files located in below pathes in output results listbox" you force comments on these files, thus preserving them from being processed by the shell. Another option allows you to preserve the first file of a set of duplicate files. ═══ 64. Write search results to file ═══ Select a file name If you don't want to use the default file name, choose a file from the file list. Enter a file and path name If you want to enter a new file name, use the entry field. Note that you must specify a path and the file name. Edit the file If you want to have a look at the file press the edit push button. Write the file Push this button to write the file. You will be warned if the file already exists. Cancel Leave the write to file dialog without writing the file nor storing a new file name in the file name entryfield. Reset Reset clears the entryfield. ═══ 65. Keys help ═══ Keys help Use the tab key to tab forward and the tab shift key to tab backwards. The following accelerator keys are defined: ┌────────┬───────────────────────────┐ │ Key │ Action │ ├────────┼───────────────────────────┤ │ Alt-s │ search │ │ │ │ │ Alt-c │ cancel search / values │ │ │ │ │ Alt-e │ edit a selected file │ │ │ │ │ Alt-x │ run a selected file │ │ │ │ │ Alt-r │ reverse output display │ │ │ │ │ Alt-d │ delete a selected file │ │ │ │ │ Alt-p │ print a selected file │ │ │ │ │ Alt-l │ command on selected file │ └────────┴───────────────────────────┘ ═══ 66. Word ═══ A word is an expression surrounded on the left and right by non- alphanumerical characters. If you select word you will get the following search results: ┌──────────┬──────┬──────┬─────┐ │button │search│ in │ │ │case sens?│string│ file │found│ ├──────────┼──────┼──────┼─────┤ │checked │ int │ int │yes │ │checked │ int │(int* │yes │ │checked │ int │9int │no │ │checked │ int │sintx │no │ │checked │ int │ intx │no │ └──────────┴──────┴──────┴─────┘ You can combine the options "case sensitive", "word" and "all". ═══ 67. Case sensitive ═══ This table shows how case sensitivity affects search results. Note that case sensitive searches are slightly faster since there is no need to uppercase the searched text. ┌─────────────────┬──────────────┬────────┬─────────┐ │searched text │ searchstring │ case │ match │ │ │ │ sens. │ │ ├─────────────────┼──────────────┼────────┼─────────┤ │ this is a House │ House │ yes │ yes │ │ this is OS/2. │ Os/2 │ yes │ no │ │ this is a House │ house │ no │ yes │ │ this is OS/2 │ Os/2 │ no │ yes │ └─────────────────┴──────────────┴────────┴─────────┘ Here is another example: Entering the word "what" as search argument results in the following hits depending on "case sensitive" or "case insensitive" search. ┌──────────┬──────┬────┬─────┐ │button │search│ in │ │ │case sens?│string│file│hit │ │──────────┼──────┼────┼─────┤ │checked │what │what│yes │ │checked │wHat │wHat│yes │ │checked │What │what│no │ │not ch. │what │what│yes │ │not ch. │wHAt │what│yes │ └──────────┴──────┴────┴─────┘ Hex check box When the "Case sensitive" check box is set, the "Hex" checkbox is disabled. ═══ 68. All occurences ═══ List all hits of string x in the found file if the "all" checkbox is set on or only the first match if it's off. Note that displaying all strings takes more time to search. ═══ 69. Regular expressions ═══ GREP - Regular Expressions Long time ago, people where searching for text in files too. They did it on UNIX systems, and they the were looking for things like: I want all occurences of hello in below text: Hello, this is an example of how you don't find all hellos in a text with a simple search for helo. They searched for "Hello", for "hello" and for the misspelled "helo". You can do this with FF2 too, by using the File search pattern dialog. But I don't recommend you that. Again, the old folks thought: Too much work, we must get around that. We must invent something, that allows more flexibility. Something, that extends the meaning of a searchstring. The "something" are the "special characters", or more professional, the "metacharacters." Some student got the job from his prof, and he worte one of the legendary UNIX tools: GREP. (Global regular expressions). FF2 V7.4 sticks close to the GREP syntax, but doesn't support all features of it. Others have been changed, since the GREP syntax sometime gets really tricky. So with FF2 V7.4 you search for the different hellos with something like: [Hh]e{1,2}lo Does it look odd to you? Right, otherwise there wouldn't be whole books about that topic. But let's look bravely at it. The [Hh] means "There must be a character, which is either a "H" or a "h". The e means simply there must be an "e" and {1,2}l means there must be either one or two "l" and the o means simply "o". So this in fact matches now "Hello, hello, helo". If you want the only the Hello at the start of line, you would ad a caret "^" which has the start of line special meaning. ^[Hh]e{1,2}lo This finds only the first "Hello" at start of line. What follows in the next are examples for the use of wildcards, ranges, repetitions, start and end of line and their combinations. Note: You don't learn this by reading, but by doing. Create a file with a short text and start experimenting. Once you've got the message, you won't miss these GREP patterns! Regular expression checkbox If you start a search for a text, FF2 V7.4 searches for exactly the string you entered in the search string entry field. If you check the regular expression checkbox, you activate the meanings of the special (meta) character from the regular expressions dialog . And you enable FF2 V7.4 's built in GREP (regular expression) matching capabilities. The grep search capabilities give FF2 V7.4 a high power for flexible searches. Characters with special meanings * ? @ # % ! / > Some examples to show you the effects: ┌──────────┬──────┬──────┬──────┐ │speial │search│ in │ │ │character │string│ file │found │ │──────────┼──────┼──────┼──────┤ │wildcard │ * │ abc │always│ │joker │ ??? │ abc │always│ │alpha │ @a1 │ aa1 │yes │ │alpha │ @a1 │ 9a1 │no │ │numeric │ ##9 │ 449 │yes │ │numeric │ ##9 │ a49 │no │ │alphanum │ %%x │ 48x │yes │ │alphanum │ %%x │ [8x │no │ │not alnum │ !!! │ (=? │yes │ │numeric │ !!! │ 9=? │no │ └──────────┴──────┴──────┴──────┘ NOT ASCI ">" finds things like tabs or German vowels. ASCI "/" finds all ASCI characters. If you have a file with the text "This is really 111 a very nice test" and you search for R?EA*##%*TE@@! the string is found. (Supposed you use the default values supplied with FF2 V7.4). With the escape character you overwrite the special meaning of a character. If a text in a file is "*** 4000 lines printed. ****" the search pattern \*\*\* 4000 finds three asterisks followed by blank 4000, not applying the special meaning "wildcard" of the character "*". This example supposes you have not changed the default escape character "\". Search pattern at start of line ^ If you know GREP, you are already familiar with this. By default, the character indicating "must be at start of line" is the "^" (caret). Note that this character must be the first character in your search (grep) pattern. Otherwise, the character has no special meaning. Some examples to show you the effects: ┌──────────┬──────────────┬─────────┐ │Pattern │ Text │ match? │ ├──────────┼──────────────┼─────────┤ │^a test │ a test │ yes │ │^ a test │ look a test │ no │ │^* │ a test │ yes │ │^* │ a test │ yes │ │^^a test │ ^a test │ yes │ │^^a test │ a test │ no │ │a ^ test │ a ^ test │ yes │ └──────────┴──────────────┴─────────┘ Search pattern at end of line $ If you know GREP, you are already familiar with this too. By default, the character indicating "must be at end of line" is the "$" (dollar). Note that this character must be the first character in your search (grep) pattern, otherwise the character has no special meaning. Some examples to show you the effects: ┌──────────┬──────────────┬─────────┐ │Pattern │ Text │ match? │ ├──────────┼──────────────┼─────────┤ │a test$ │ a test │ yes │ │a test$ │ a test look │ no │ │*$ │ a test │ yes │ │*test$ │ a test │ yes │ │a test$$ │ a test$ │ yes │ │a test$ │ a test$ │ no │ │a $ test │ a $ test │ yes │ └──────────┴──────────────┴─────────┘ Search pattern at start and end of line ^ and $ This offers interisting possibilities. You can find a line that contains only the searched text and nothing else. The pattern "^Hello world$" matches only "Hello world", and not " Hello world" or "Hello world ". Finding empty lines ^$ An empty line will be found with the pattern "^$". Finding all text ^*$ Everything will be found with the pattern "^*$". Bracket expressions [a-zA-Z] Again, if you know GREP you may have already seen some of this. Bracket expressions give a range of characters to hit. If you want to match "World" and "world" in a case sensitive search, you spezify [Ww]orld. This means, that the lower or uppercase w is all right. Another sample would be "hook" and "look" which would be both matched with [wl]ook. More sophisticated uses include ranges, which are represented in a from char to char fashion [a-z] which matches all chars between lower a and lower z. To match all characters of the alphabet, lowercase and uppercase write [a-zA-Z]. You are allowed to write as many ranges as you like, e.g. [abcd1-9xyz] matches abcd or a number or xyz. Let's look closer to at the numbers. Instead of [abcd1-9xyz] you may write [abcd#xyz] supposed you've left the meaning of the regular expressions unchanged. Inside the brackets, the special meaning of the characters is maintained, with the following exceptions :  Joker * Inside brackets the joker (*) has the same meaning as ? Inside brackets, repetitions (see below) are nonsense and have no meaning. [{1,2}x] inside a bracket is interpreted as "one of these characters must be there".  [#-@] A range from number to ASCI doesn't make sense. In a from-to expression regular expressions are treated like they would be escaped thus a # means "the char #" and not "must be a digit". Escaping within bracket expressions Supposed you want to search for '[' (openingg bracket) ']' (closing bracket) or '-' (range within brackets) within a bracket expression you have to escape them. [ab-\1-3] means match a,b or '-' or a number between 1-3. The same way work [ab\]1-3] and [ab\[1-3]. Case sensitive search is assumed! ┌────────────────┬──────────────┬─────────┐ │Pattern │ Text │ match? │ ├────────────────┼──────────────┼─────────┤ │[wW]orld │ world │ yes │ │[wW]orld │ World │ yes │ │19[0-4]5 │ 1935 │ yes │ │19[0-4]5 │ 1995 │ no │ │[lh]ook │ look │ yes │ │[lh]ook │ hook │ yes │ │[a-z]ake │ make │ yes │ │[a-z]ake │ fake │ yes │ │[a-z]ake │ Sake │ no │ │[a-z]ake │ sake │ yes │ │[a-zA-Z]ake │ Sake │ yes │ │[a-zA-Z]ake │ sake │ yes │ │wo[@#]rld │ world │ yes │ │wo[@#]rld │ wo4ld │ yes │ │wa[ab\-z]ter │ wa-ter │ yes │ │wa[ab-z]ter 5 │ wa-ter │ no │ │bra[\[]cket │ bra[cket │ yes │ └────────────────┴──────────────┴─────────┘ Repeating an expression {1,2}a or {1-2}a Again, GREP addicts will know the message. Repetitions are indicated by the following syntax: {from,to}character or {from-to}character. So you match "helo", "hello", "helllo" by specifying he{1,3}lo. If you want to find "hello", write he{2}lo. Repetitions become handy if you wand to match things like a numer starting with one and having 1-5 zeroes followed by one. 1{1-5}01 does the job. Repeating regular expressions {1,2}[a-z] You can repeat characters which have special meanings and bracked expressions. he{1,2}[a-z]o still matches "hello", the same is true for {he{1,2}@. If you repeat the "*" (joker) you would find a line containing "this this this" by th{3}*s. Again, you will have to play around with the repetition feature to exploit it's power. Case sensitive search is assumed! {1,2}a and {1-2}a have the same meaning. ┌────────────────┬────────────────┬─────────┐ │Pattern │ Text │ match? │ ├────────────────┼────────────────┼─────────┤ │he{1,2}lo │ hello │ yes │ │he{2}lo │ hello │ yes │ │he{1}lo │ hello │ no │ │he{1,5}lo │ hello │ yes │ │he{3,5}lo │ hello │ no │ │1{1-5}01 │ 101 │ yes │ │1{1-5}01 │ 1001 │ yes │ │1{1-5}01 │ 10001 │ yes │ │1{1-5}01 │ 100001 │ yes │ │1{1-5}01 │ 1000001 │ yes │ │1{1-5}01 │ 10000001 │ no │ │he{1,2}[a-z]o │ hello │ yes │ │he{1,2}[A-Z]o │ hello │ no │ │t{3}*s │ this this this │ yes │ └────────────────┴────────────────┴─────────┘ Escaping a repeating expression You escape a repeating expression by adding the escaping character. he\{1,2}llo matches now only the string "he{1,2}llo". Repetitions and start/end of line Start of line and end of line characters must occur as the first or last characters in the regular expression. Look at the examples: Case sensitive search is assumed! {1,2}a and {1-2}a have the same meaning. ┌────────────────┬────────────────┬─────────┐ │Pattern │ Text │ match? │ ├────────────────┼────────────────┼─────────┤ │{1,2}^ hello │ a ^ hello │ yes │ │{1,2}^ hello │ a ^^ hello │ yes │ │^{1,2}^ hello │ a ^ hello │ no │ │^{1,2}^ hello │ ^hello │ yes │ │^{1,2}^ hello │ ^^hello │ yes │ │hello{1,2}$ │ hello$ a │ yes │ │hello{1,2}$ │ hello$$ a │ yes │ │hello{1,2}$$ │ hello$ a │ no │ │hello{1,2}$$ │ hello$ │ yes │ └────────────────┴────────────────┴─────────┘ Wildcards and repetitions You can look for lines like "hello 123 a test" , "hello oops 1234 a test" by writing the pattern ^*{1-3}[1-4] a test. This shows that if you specify a wildcard followed by a repetition or bracket expression (or both together like here) the following pattern {1-3}[1-4] (one to three times a character in the range from 1 to 4) must be matched. Hex check box When the "Use regular expressions" check box is checked, the "Hex" check box is disabled. ═══ 70. Startable program types ═══ Read the following information to start a program whose type you don't know. This situation occurs with some "old" programs wich don't contain information about their appearence under OS/2. ┌─────────────────┬────────┐ │Program │ │ │type │ remarks│ ├─────────────────┼────────┤ │ │ │ │Full screen OS/2 │ 1 │ │Windowed OS/2 │ 1 │ │PM │ 2 │ │Full screen DOS │ 3 │ │Windowed DOS │ 3 │ │WINOS/2 │ 4 │ └─────────────────┴────────┘ 1. A full screen program normally runs as a windowed OS/2 program and vice versa. 2. Every program that uses PM to display itself (and is not a windows program). 3. A full screen DOS program normally runs as a windowed DOS program and vice versa. 4. Every program that uses WINDOWS to dispay itself on the desktop. ═══ 71. Transformation Templates ═══ Definition for substitutions Transformation templates work the way that you can devide a path into it's parts: %d% drive = d: %p% path = \path\ (the whole path) %p1% to %p10% = part 1...10 of above path %f% filename = file %e% file extension = .ext %s% file + extension = file.ext The parts extracted by the transformation templates contain already the : (colons) and \ (backslashes). You need to enter them only when you are adding additional pathes like in %d%%p1%MYPATH\%p2%. In this example you add a \ (backlashe) after MYPATH. Sample template definitions: copy If you wish to copy all found files with another filename extension then the original one, just enter "%d%%p%%f%.new" What does it? It looks up the found path and builds the to-destination by extracting the drive, path filename and fileextension from the original path and applys it on your template. This makes up the destination path. The from part remains unchanged, and in the destination part drive, path and filename remain unchanged, but the filename extension is set to "new". Adding directory levels Suppose you want to add two direcotory levels to save the found files. The template %d%newlevel1\newlevel2\%p%%s%" does it, leaving drive, filename and filename extension unchanged, and adding adds level1\level2\ to the destination filename. You might want to change a path named drive:\dir1\dir2\dir3\filename.ext to \dir1\mynewdir\dir2\dir3\filename.ext wich requieres the template "%d%%p1%mydir%p2%%p3%%s%" Deleting directory levels The same way you can delete a directory with a template. %d%%p1%%p3%%s% deletes the second directory level in the path, changing the original drive:\dir1\dir2\dir3\filename.ext to drive:\dir1\dir3\filename.ext. More directory parts then in the original path If the original path contains less directory parts then %pn% substitutions FF2 V7.4 substitutes the superfluous %pn% with empty strings. This way the result is the same as if you wouldn't have specified a %pn% path. Here's an example: found path: "d:\path1\myfile.ext" subst. pattern: "d:%p1%%p2%%p3%%f%.sav" result: "d:\path1\myfile.sav" ═══ 72. File search pattern ═══ ┌───────────┬───────────────────────────────┐ │ pattern │ matches │ ├───────────┼───────────────────────────────┤ │*.txt │ hello.txt bye.txt FF2.txt │ │wom?n │ woman women │ │*.sav │ hello.sav bye.sav │ │config.??? │ config.sav config.sv1 │ │pa*.??? │ pattern.txt pause.exe │ │*.? │ fancy.1 warp.1 │ │*.* │ everything with a dot between │ │* │ everything │ └───────────┴───────────────────────────────┘ ═══ 73. Hexadecimal characters ═══ Hexadecimal strings Every character can be represented by its hexadecimal value. Have a look at an ASCII table or enter a text in the text strings entryfield, then check the "hex" checkbox. If you entered abcd01234, you will get a string of 616263643031323334. This is the hexadecimal representation of abcd01234. If you uncheck the "hex" checkbox, you'll get abcd01234 again. Examples You can use the hexadecimal string representation whenever you want to search or change unprintable characters, eg. to change the newline sequence 0D0A to another value. Advanced usage includes patching. Case sensitive and Regular expression checkbox When "Hex" is checked, the "Case sensitive" and "Regular expression" check boxes are disabled. Note that in the hex search mode, searches are always case sensitive. E. g. 74657374, the hexadecimal representation of "test" matches only "test", and not "TEST" or "TEst". ═══ 74. Logical connections ═══ "and", "or", "not" checkboxes You combine the search strings logically by toggeling the and/or checkbox. FF2 V7.4 searches all strings you specified. For every file FF2 V7.4 then evaluates wheter the found strings and your logical expressions match. FF2 V7.4 evaluates logical expressions in top down order. "Not" negates a logical expression, e.g. "and not a string" means that it's true if the string was not found at the evaluation point of this expression. Expr. 1: 1 and 2 and 3 and 4 and 5 Expr. 2: 1 and 2 or 3 or 4 and 5 Expr. 3: 1 or 2 or 3 and not 4 and 5 Expr. 4: 1 and not 2 or 3 or 4 and 5 ┌────────┬────────────────────┬─────┐ │expres- │string found in file│true │ │sion ├───┬───┬───┬───┬────┤ │ │ │ 1 │ 2 │ 3 │ 4 │ 5 │ │ ├────────┼───┼───┼───┼───┼────┼─────┤ │ 1 │ Y │ Y │ N │ N │ Y │ No │ │ 2 │ Y │ Y │ N │ N │ Y │ Yes │ │ 3 │ Y │ Y │ N │ N │ Y │ Yes │ │ 4 │ Y │ Y │ N │ N │ Y │ No │ └────────┴───┴───┴───┴───┴────┴─────┘ ═══ 75. Installation ═══ System requirements It's up to you how much system resources you give FF2 V7.4. You specify system resources in the working options dialog. The Hankosoft product FF2 V7.4 is delivered with FF2.EXE executable FF2.HLP helpfile FF2.INI initial file Help file location The FF2.hlp file should be placed either in the same directory as FF2 V7.4 or in the HELP path. Restoring the FF2.INI file If your FF2.INI file seems to be corrupted just delete it. FF2 generates a new one containing the installation default values. The FF2.INI file will always be placed in the same directory as FF2.EXE. Disclaimer FF2 V7.4 is a product of HankoSoft. HankoSoft will not take responsability / liability for any damage to your hard- and software nor to loss or destruction of data caused by FF2 V7.4. By using FF2 V7.4 you agree with this disclaimer.